package com.favccxx.marketplace.order.entity;


import com.baomidou.mybatisplus.annotation.TableName;
import com.favccxx.marketplace.order.domain.order.entity.OrderStatus;
import lombok.Data;

import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
@TableName(value="t_order")
public class Order implements Serializable, Comparable {


    private Long id;

    /**
     * 订单状态
     */
    @Enumerated(EnumType.STRING)
    private OrderStatus orderStatus = OrderStatus.UN_PAY;

    /**
     * 订单创建时间
     */
    private LocalDateTime createTime;

    /**
     * 订单来源
     * 1： app端
     * 2： pc端
     * 3： 小程序
     * 4： 团购
     */
    private Integer orderSourceType = 1;

    /**
     * 发票类型
     * 1： 无发票
     * 2： 普通发票
     * 3： 普通发票
     * 4： 增值税发票
     */
    private Integer voiceType = 1;

    /**
     * 订单总金额
     */
    private BigDecimal totalPay;

    /**
     * 实际支付金额
     */
    private BigDecimal actualPay;

    /**
     * 用户Id
     */
    private Long userId;

    /**
     * 买家昵称
     */
    private String userName;

    /**
     * 买家留言备注
     */
    private String userMessage;

    /*************************** 收获地址 *************************/
    /**
     * 收货人姓名
     */
    private String receiver;
    /**
     * 收货人电话
     */
    private String receiverMobile;
    /**
     * 收获省份
     */
    private String receiverState;
    /**
     * 城市
     */
    private String receiverCity;
    /**
     * 区/县
     */
    private String receiverDistrict;
    /**
     * 详细地址，xx路xx号
     */
    private String receiverAddress;
    /**
     * 收获邮编
     */
    private String receiverZip;
    /*************************** 收获地址 *************************/


    /**
     * 支付类型
     * 1： 在线支付
     * 2： 货到付款
     */
    private Integer payType = 1;

    /**
     * 店铺Id
     */
    private Long shopId = 100L;

    /**
     * 支付时间
     */
    private LocalDateTime payTime;


    private List<OrderItem> orderDetailList;


    @Override
    public int compareTo(Object o) {
        return 0;
    }
}
